package com.mdb.open.trade.domain.vo.product;

import com.mdb.bc.api.data.DataObjectBase;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* 类描述：
*  额度信息表视图类
*
* @author liuyi
* @date 2019-07-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="LimitInfoVo", description="额度信息表Vo对象")
public class LimitInfoVo extends DataObjectBase {

    private static final long serialVersionUID = 1L;
    /**
    * ID主键
    */
    @ApiModelProperty(value = "ID主键")
    private Integer id;

    /**
    * 额度类型
    */
    @ApiModelProperty(value = "额度类型")
    private String type;

    /**
    * 额度编号
    */
    @ApiModelProperty(value = "额度编号")
    private String limitNo;

    /**
    * 额度货币类型
    */
    @ApiModelProperty(value = "额度货币类型")
    private String ccy;

    /**
    * 额度种类，在PB中维护
    */
    @ApiModelProperty(value = "额度种类，在PB中维护")
    private String code;

    /**
    * 额度层次 
    */
    @ApiModelProperty(value = "额度层次 ")
    private String level;

    /**
    * 层次号
    */
    @ApiModelProperty(value = "层次号")
    private String levelNo;

    /**
    * 上层额度编号
    */
    @ApiModelProperty(value = "上层额度编号")
    private String father;

    /**
    * 顶层额度编号
    */
    @ApiModelProperty(value = "顶层额度编号")
    private String topFather;

    /**
    * 最大额度
    */
    @ApiModelProperty(value = "最大额度")
    private BigDecimal max;

    /**
    * 实际额度
    */
    @ApiModelProperty(value = "实际额度")
    private BigDecimal actual;

    /**
    * 使用结余
    */
    @ApiModelProperty(value = "使用结余")
    private BigDecimal useBal;

    /**
    * 累积结余
    */
    @ApiModelProperty(value = "累积结余")
    private BigDecimal cumBal;

    /**
    * 本额度的可用余额
    */
    @ApiModelProperty(value = "本额度的可用余额")
    private BigDecimal avaBal;

    /**
    * 本额度的可用余额净值
    */
    @ApiModelProperty(value = "本额度的可用余额净值")
    private BigDecimal netBal;

    /**
    * 冻结结余
    */
    @ApiModelProperty(value = "冻结结余")
    private BigDecimal emkBal;

    /**
    * 额度状态位，每一位表示一种状态
    */
    @ApiModelProperty(value = "额度状态位，每一位表示一种状态")
    private String status;

    /**
    * 额度使用方式N：非循环额度

    */
    @ApiModelProperty(value = "额度使用方式N：非循环额度")
    private String use;

    /**
    * 额度性質第1位：可否有押品支持；即With Collateral Flag(Y-Yes,N-No)。
第2位：额度承诺性标识(Y:Committed，N:Non-committed)
第3位：银行可无条件撤消标识(Y-Yes,N-No)
第4位~第8位：预留
    */
    @ApiModelProperty(value = "额度性質")
    private String cls;

    /**
    * 生效日期
    */
    @ApiModelProperty(value = "生效日期")
    private LocalDateTime effDate;

    /**
    * 时效日期
    */
    @ApiModelProperty(value = "时效日期")
    private LocalDateTime expDate;

    /**
    * 下次检查日期
    */
    @ApiModelProperty(value = "下次检查日期")
    private LocalDateTime nrvwDate;

    /**
    * 上次重检日期
    */
    @ApiModelProperty(value = "上次重检日期")
    private LocalDateTime lrvwDate;

    /**
    * 重检周期
    */
    @ApiModelProperty(value = "重检周期")
    private String rvwFreq;

    /**
    * 展期到期日
    */
    @ApiModelProperty(value = "展期到期日")
    private LocalDateTime extendDate;

    /**
    * 可用额度到期日
    */
    @ApiModelProperty(value = "可用额度到期日")
    private LocalDateTime availDate;

    /**
    * 行使权日期
    */
    @ApiModelProperty(value = "行使权日期")
    private LocalDateTime optionDate;

    /**
    * 续期标志"取值:Y/N/空格,Y:当天续期；N:当天修改到期日；空格:当前没修改到期日"
    */
    @ApiModelProperty(value = "续期标志取值:Y/N/空格,Y:当天续期；N:当天修改到期日；空格:当前没修改到期日")
    private String extendFlg;

    /**
    * 备注
    */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
    * 创建者ID
    */
    @ApiModelProperty(value = "创建者ID")
    private String createUserNo;

    /**
    * 创建者
    */
    @ApiModelProperty(value = "创建者")
    private String createUserName;

    /**
    * 操作人ID
    */
    @ApiModelProperty(value = "操作人ID")
    private String optUserNo;

    /**
    * 操作人name
    */
    @ApiModelProperty(value = "操作人name")
    private String optUserName;

    /**
    * 创建时间
    */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    /**
    * 修改时间
    */
    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updateTime;

}
